Web services are becoming very popular as more and more web sites and applications are available to consumers. Some examples of web services are Facebook, Google Voice, Twitter, etc. Web services may be browser-based services or non-browser-based. With a browser-based service, an end user device (e.g., a smart phone) has a browser that accesses a web application over a network, such as the internet, an enterprise intranet, etc. The web application is coded in a language supported by the browser, such as JavaScript, HTML, etc. The browser then renders the web application executable to access/provide the desired service. With non-browser-based services, the web application (i.e., the executable) is downloaded and stored on the end user device. The end user device is able to execute the application without using a browser to access/provide the desired service. The application downloaded onto an end user device is commonly referred to as a “mobile app” or a “phone app”.
When an end user requests a web service, the end user device generates a service request and sends the service request to a server that is able to provide the requested web service. The service request is typically sent using an open Application Programming Interface (API) that is defined for web-based services. For example, the open API may be Simple Object Access Protocol (SOAP), RESTful, ParlayX, etc. The server or an intermediate gateway then converts the open API request to a request in the protocol supported by the server. The server then provides the requested web service to the requesting device.
Because of the popularity of web services, service providers are continually looking for ways to improve the quality of the web services from the point of view of the consumer and the service provider.